package com.hyperboost.mapper;

import com.hyperboost.dto.OpportunityCommentPageQueryDTO;
import com.hyperboost.entity.OpportunityComment;
import com.hyperboost.vo.OpportunityCommentReplyVO;
import com.hyperboost.vo.OpportunityCommentVO;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

@Mapper
public interface OpportunityCommentMapper {

    /**
     * 新增机会评论数据
     *
     * @param opportunityComment
     */
    void insert(OpportunityComment opportunityComment);

    /**
     * 根据评论ID获取评论信息
     *
     * @param commentId
     * @return
     */
    OpportunityComment getCommentByCommentId(Long commentId);

    /**
     * 根据顶级评论ID删除所有评论
     *
     * @param commentId
     */
    void deleteCommentByTopId(Long commentId);

    /**
     * 根据父评论ID删除子评论
     *
     * @param commentId
     */
    void deleteCommentByParentId(Long commentId);

    /**
     * 根据评论ID删除评论
     *
     * @param commentId
     */
    void deleteCommentByCommentId(Long commentId);

    /**
     * 分页查询顶级评论
     *
     * @param commentPageQueryDTO
     * @return
     */
    List<OpportunityCommentVO> pageQuery(OpportunityCommentPageQueryDTO commentPageQueryDTO);

    /**
     * 查询回复评论
     *
     * @param topId
     * @return
     */
    List<OpportunityCommentReplyVO> listReply(Long topId,Long parentId);

    /**
     * 根据顶级评论ID获取子评论数量
     *
     * @param commentId
     */
    int childCountByTopId(Long commentId);

    /**
     * 根据父评论ID获取子评论数量
     *
     * @param commentId
     * @return
     */
    int childCountByParentId(Long commentId);
}
